/*> 本次作业预计完成时间: 30 分钟

# 填空题

1. 表达数据集合的类型 `set` 和 `vector`，它们最主要的区别是什么？
set不能有重复的元素vector能
2. 为了使用 `set`，应该包含的头文件是什么？
#include <set>
3. 阅读以下代码：

```cpp
set<int> coll;
auto result = coll.insert(1);
result = coll.insert(1);
```

其中：

* 变量 `result` 的具体类型是：____________int_______________;
* 第二次 `insert` 之后，`result.first` 的值是 _________1__________，`result.second` 的值是 _________false___________；

# 填空题、一

填充下列冒泡排序的代码：

vector<int> bubbleSort(vector<int> array) {
  for (int i = 0; i < array.size(); ++i) {
    for (int j = i + 1; j < array.size(); ++j) {
      if (array[i] > array[j]) {
          swap(arr[j],arr[i]);
      }
    }
    
    cout<<"Round "<<i<<": ";
    for (int n : array) {
      cout<<n<<" ";
    }
    cout<<endl;
  }
  
  return array;
}

写出当执行 `bubbleSort([9, 7, 2, 6, 1])` 是看到的结果：

# 编程题

编写一个函数，`find_min`，它有两个参数 `i` 和 `array`，`find_min` 可以在 `array` 中，从位置 `i` 开始，找到其中最小的数字，并返回。

例如：

对于数组 `vector<int> array {1, 2, 3, 4, 5, 6, 7};` 来说：

* `find_min(0, array)` 返回 1；
* `find_min(1, array)` 返回 2；
* `find_min(4, array)` 返回 5；
* 以此类推；

```cpp*/
#include <algorithm>
#include <vector>
#include <iostream>

using namespace std;

vector<int> bubbleSort(vector<int> array) {
  for (int i = 0; i < array.size(); ++i) {
    for (int j = i + 1; j < array.size(); ++j) {
      if (array[i] > array[j]) {
          swap(arr[j],arr[i]);
      }
    }
    
    cout<<"Round "<<i<<": ";
    for (int n : array) {
      cout<<n<<" ";
    }
    cout<<endl;
  }
  
  return array;
}

int find_min(int i, vector<int> array) {
    vector<int> array2;
   
    array2.insert(array2.end(), array.begin()+i, array.end());
    
    sort(array2.begin(),array2.end());
    
    return array2[0];
}

int main(int argc, char const *argv[])
{
    vector<int> array {6, 9, 5, 3, 1}; 
    
    int nMin = find_min(2,array);
  
    cout<<"Min="<< nMin <<endl;

    
    return 0;
}

